Sufficient Preconditions for Modular Assertion Checking

نویسنده

  • Yannick Moy
چکیده

Assertion checking is the restriction of program verification to validity of program assertions. It encompasses safety checking, which is program verification of safety properties, like memory safety or absence of overflows. In this paper, we consider assertion checking of program parts instead of whole programs, which we call modular assertion checking. Classically, modular assertion checking is possible only if the context in which a program part is executed is known. By default, the worst-case context must be assumed, which may impair the verification task. It usually takes user effort to detail enough the execution context for the verification task to succeed, by providing strong enough preconditions. We propose a method to automatically infer sufficient preconditions in the context of modular assertion checking of imperative pointer programs. It combines abstract interpretation, weakest precondition calculus and quantifier elimination. We instantiate this method to prove memory safety for C and Java programs, under some memory separation conditions.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Assertion Checking over Combined Abstraction of Linear Arithmetic and Uninterpreted Functions

This paper presents results on the problem of checking equality assertions in programs whose expressions have been abstracted using combination of linear arithmetic and uninterpreted functions, and whose conditionals are treated as non-deterministic. We first show that the problem of assertion checking for this combined abstraction is coNP-hard, even for loop-free programs. This result is quite...

متن کامل

Executing Quantified Expressions in the JML Run

Modern software development projects are extremely complex and often involve millions of lines of code. Using the Java Modeling Language (JML) can substantially reduce bugs and errors in software implemented in Java. The JML tool from Iowa State has many features, including static checking and run-time assertion checking of preconditions. However, the runtime assertion checking lacks the abilit...

متن کامل

Context-Sensitive Multivariant Assertion Checking in Modular Programs

We propose a modular, assertion-based system for verification and debugging of large logic programs, together with several interesting models for checking assertions statically in modular programs, each with different characteristics and representing different trade-offs. Our proposal is a modular and multivariant extension of our previously proposed abstract assertion checking model and we als...

متن کامل

A Lesson on Runtime Assertion Checking with Frama-C

Runtime assertion checking provides a powerful, highly automatizable technique to detect violations of specified program properties. This paper provides a lesson on runtime assertion checking with Frama-C, a publicly available toolset for analysis of C programs. We illustrate how a C program can be specified in executable specification language e-acsl and how this specification can be automatic...

متن کامل

Use Case Based Requirements Verification - Verifying the Consistency between Use Cases and Assertions

Use cases and operations are complementary requirements artefacts. A use case refers to operations and imposes their sequencing. Use cases templates usually include assertions such as preconditions, postconditions and invariants. Similarly operations are specified using contracts consisting in preconditions and postconditions. In this paper, we present an approach aiming at checking the consist...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008